package com.mm.designpatterns;

/**
 * @author wdx
 * @date 2021年03月31日 17:24
 * <p>
 * 懒汉式 线程安全
 * 类加载不会导致该单实例对象被创建，而是首次使用该对象时才会创建
 * 该方法的执行效果特别低
 */
public class Singleton3 {

    //私有构造方法
    private Singleton3() {
    }

    //在成员位置创建该类的对象
    private static Singleton3 instance;

    //对外提供静态方法获取该对象
    public static synchronized Singleton3 getInstance() {
        if (instance == null) {
            instance = new Singleton3();
        }
        return instance;
    }


    public static void main(String[] args) {
        Singleton3 singleton1 = new Singleton3();
        Singleton3 singleton2 = new Singleton3();
        System.out.println(singleton1 == singleton2);
    }

}
